package com.fowo.api.service;

import com.fowo.api.entity.WarehouseBin;
import com.fowo.api.entity.WarehouseBinProducts;
import com.fowo.api.model.warehousebinrules.WarehouseBinRulesItemVo;
import com.fowo.api.model.warehousebinrules.WarehouseBinRulesSearchParamPo;

import java.util.List;

public interface WarehouseBinRulesService {
    /**
     *   获取固定仓位
     * @param warehouseBinRulesSearchParamPo
     * @return
     * @throws Exception
     */
    WarehouseBinRulesItemVo search(WarehouseBinRulesSearchParamPo warehouseBinRulesSearchParamPo) throws Exception;

    /**
     *  算法
     * @param searchParamPo
     * @return
     */
    List<WarehouseBinRulesItemVo> searchRules(WarehouseBinRulesSearchParamPo searchParamPo) throws Exception;

    WarehouseBinRulesItemVo searchNew(WarehouseBinRulesSearchParamPo searchParamPo) throws Exception;

    /**
     * 根据物料id 查询所有子表 再根据子表数据查询对应
     * @param ids
     * @return
     * @throws Exception
     */

    List<WarehouseBinProducts> searchWarehouseBinProductsList(List<Long> ids) throws Exception;
    /**
     *  根据子表数据查询主表数据
     * @param ids
     *  * @param type 1可用 2 残次
     * @return
     * @throws Exception
     */
    List<WarehouseBin> searchWarehouseBinList(List<Long> ids,List<Long> warehouseIdS,int type) throws Exception;

    /**
     *  根据仓库查询
     * @param ids
     *  * @param type 1可用 2 残次
     * @return
     * @throws Exception
     */
    List<WarehouseBin> searchWarehouseBinByWarehouseIdList(List<Long> ids,int type) throws Exception;


}
